// 用户请求参数

export interface UserInfoParam {
    id: number;
}

//列表参数 以及一些查询参数
export interface ListParams {
    page: number;
    limit: number;
}

export interface LoginParams {
    email?: string;
    password?: string;
    code?: string;
    mode?: "emode" | "phonemode" | "emodecode" | "phonemodecode" | ""; // 登录模式，1-邮箱登录，2-手机号码登录
    cellphone?: string; // 手机号码
}

// 注册参数

// export interface RegisterParams {
//     username: string;
//     age: number;
//     email: string;
//     code: string;// 邮箱验证
//     password: string;// 密码
//     repassword: string; // 确定密码
// }


// 用户收藏查询参数
export interface UserCollectParams {
    page: number;
    limit: number;
}

// 定义日期时间类型
type DateTime = string; // ISO 8601 格式的日期时间字符串

// 用户类型定义
export interface User {
    id: number; // JSON 中的 bigint 通常以 string 格式表示
    username: string;
    password?: string;
    age: number;
    birth?: DateTime; // 可选的字段
    gender: number;
    signature: string;
    email: string;
    cellphone: string;
    avatarUrl: string;
    createdAt?: DateTime; // 可选的字段
    updatedAt?: DateTime; // 可选的字段
    deletedAt?: DateTime; // 可选的字段
    isRemoved: number;
    auth: authlist
}

type authlist = {
    operate: number[];
    route: number[];
}

export interface SendEmailCodeParams {
    email?: String
    cellPhone?: String
    mode?: String
}

// 用于注册的参数
export interface RegisterParams {
    username: string;
    age: number;
    email: string;
    code: string;// 邮箱验证
    password: string;// 密码
    repassword: string; // 确定密码
    birth?: DateTime; // 可选的字段
    gender?: number;
    signature?: string;
    cellphone?: string;
}
// 用户收藏查询参数
export interface UserCollectParams {
    page: number;
    limit: number;
}
// 用户模糊查询相关参数
export interface UserLikeParams {
    page: number;
    limit: number;
    filed: string;
}

export interface UserSearchOnlyIdAndEmail {
    id: number;
    username: string;
    email: string
}